#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;


template<class T>
class sequence
{
public:
	void Insert(const T& val)
	{
		v.push_back(val);
		std::sort(v.begin(), v.end());
	}

	void rotate(int k)
	{
		k = k % v.size();
		reverse(v.begin(), v.end());
		reverse(v.begin(), (v.begin() + (k)));
		reverse((v.begin() + (k)),v.end());
	}

	void Reverse()
	{
		std::reverse(v.begin(), v.end());
	}

	void sort()
	{
		std::sort(v.begin(), v.end());
	}

	void Print()
	{
		for (auto& e : v)
		{
			cout << e << " ";
		}
		cout << endl;
	}

private:
	vector<T> v;
};

int main()
{
	sequence<int> s;
	s.Insert(1);
	s.Insert(7);
	s.Insert(9);
	s.Insert(5);
	s.Insert(3);
	s.Insert(4);
	s.Insert(8);
	s.Insert(2);
	s.Insert(6);

	s.Print();
	s.rotate(5);
	s.Print();

	s.sort();
	s.Print();

	s.Reverse();
	s.Print();
	return 0;
}